package com.sunwayhorizo.health.business.dto.registries;

import com.sunwayhorizo.health.business.dto.DictionaryDTO;
import com.sunwayhorizo.health.business.dto.LoginBaseInfoDTO;

import java.io.*;
import java.util.*;

public class DepartmentDTO implements Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	/**
	 * 科室主键(RIM EntityId)
	 */
	private String departmentId;
	/**
	 * RIM RoleID
	 */
	private String rimDepartmentRoleId;
	/**
	 * 科室编码
	 */
	private String departmentCode;
	/**
	 * 科室名称
	 */
	private String departmentName;
	/**
	 * 拼音码
	 */
	private String pinyinCode;
	/**
	 * 五笔码
	 */
	private String wubiCode;
	/**
	 * 科室类型
	 **/
	private DictionaryDTO departmentType = new DictionaryDTO();
	/**
	 * 父ID
	 */
	private String parentId;

	/**
	 * 父科室编码
	 */
	private String parentCode;
	/**
	 * 科室位置
	 */
	private String position;
	/**
	 * 描述
	 */
	private String description;
	/**
	 * 子科室
	 */
	private List<DepartmentDTO> children;
	/**
	 * 当前登录人信息
	 */
	private LoginBaseInfoDTO loginBaseInfo = new LoginBaseInfoDTO();
	/**
	 * 科室状态 0：启用 1：未启用
	 */
	private String state;
	/**
	 * 标志为工作组还是科室(必选) 0:机构，1：科室 2：工作组,当flag为2时departmentType属性中有信息，为1时为空对象
	 */
	private String flag;

	@Override
	public String toString() {
		return "DepartmentDTO [\n主键=" + departmentId + ",\n 角色Id="
				+ rimDepartmentRoleId + ",\n 科室名称 =" + departmentName
				+ ",\n 位置=" + position + ",\n 科室类型=" + departmentType
				+ ",\n 描述=" + description + ",\n 父ID=" + parentId 
				+ ",\n 父科室编码="+parentCode
				//+ ",\n 子科室="+children
				+ ",\n 描述="+description
				+ ",\n 拼音码="
				+ pinyinCode + ",\n 五笔=" + wubiCode + ",\n 编码="
				+ departmentCode + ",\n 子部门个数="
				// + children.size()
				+ ",\n 科室编码=" + departmentCode
				// + ",\n 当前登录人信息="+loginBaseInfo
				+ ",\n 状态=" + state + ",\n 标志=" + flag + "]";
	}

	public String getDepartmentId() {
		return departmentId;
	}

	public void setDepartmentId(String departmentId) {
		this.departmentId = departmentId;
	}

	public String getRimDepartmentRoleId() {
		return rimDepartmentRoleId;
	}

	public void setRimDepartmentRoleId(String rimDepartmentRoleId) {
		this.rimDepartmentRoleId = rimDepartmentRoleId;
	}

	public String getDepartmentCode() {
		return departmentCode;
	}

	public void setDepartmentCode(String departmentCode) {
		this.departmentCode = departmentCode;
	}

	public String getDepartmentName() {
		return departmentName;
	}

	public void setDepartmentName(String departmentName) {
		this.departmentName = departmentName;
	}

	public String getPinyinCode() {
		return pinyinCode;
	}

	public void setPinyinCode(String pinyinCode) {
		this.pinyinCode = pinyinCode;
	}

	public String getWubiCode() {
		return wubiCode;
	}

	public void setWubiCode(String wubiCode) {
		this.wubiCode = wubiCode;
	}

	public DictionaryDTO getDepartmentType() {
		return departmentType;
	}

	public void setDepartmentType(DictionaryDTO departmentType) {
		this.departmentType = departmentType;
	}

	public String getParentId() {
		return parentId;
	}

	public void setParentId(String parentId) {
		this.parentId = parentId;
	}

	public String getPosition() {
		return position;
	}

	public void setPosition(String position) {
		this.position = position;
	}

	public String getDescription() {
		return description;
	}

	public void setDescription(String description) {
		this.description = description;
	}

	public List<DepartmentDTO> getChildren() {
		return children;
	}

	public void setChildren(List<DepartmentDTO> children) {
		this.children = children;
	}

	public LoginBaseInfoDTO getLoginBaseInfo() {
		return loginBaseInfo;
	}

	public void setLoginBaseInfo(LoginBaseInfoDTO loginBaseInfo) {
		this.loginBaseInfo = loginBaseInfo;
	}

	public String getState() {
		return state;
	}

	public void setState(String state) {
		this.state = state;
	}

	public String getFlag() {
		return flag;
	}

	public void setFlag(String flag) {
		this.flag = flag;
	}

	public String getParentCode() {
		return parentCode;
	}

	public void setParentCode(String parentCode) {
		this.parentCode = parentCode;
	}

}
